package Day_0209.NetWork;

/**
 * @author zxc
 * @date 2023/02/09 22:30
 **/
public class Resolve_DomainName {
    public static void main(String[] args) {
        /**
         * 浏览器输入网址“www.baidu.com”后具体发生了啥，请详细阐述
         * ===》
         * 1.由域名→IP地址 ;
         * ===》 寻找IP地址的过程，依次经过了浏览器缓存、系统缓存、hosts文件、路由器缓存、递归搜索根域名服务器。
         * 2.建立TCP/IP连接（三次握手具体过程）;
         * 3.由浏览器发送一个HTTP请求;
         * 4.经过路由器的转发，通过服务器的防火墙，该HTTP请求到达了服务器;
         * 5.服务器处理该HTTP请求，返回一个HTML文件;
         * 6.浏览器解析该HTML文件，并且显示在浏览器端;
         *
         * 这里需要注意：
         * （1）HTTP协议是一种基于TCP/IP的应用层协议，进行HTTP数据请求，必须先建立TCP/IP连接;
         *  可以这样理解：
         *  ===》 HTTP是轿车，提供了封装或者显示数据的具体形式;Socket是发动机，提供了网络通信的能力。
         * （2）两个计算机之间的交流,无非是两个端口之间的数据通信,具体的数据会以什么样的形式展现是以不同的应用层协议来定义的。
         *
         * ===》
         * 总结 ：
         * （1）域名 -> ip地址;
         * （ip地址的解析过程 ：浏览器缓存 - 系统缓存 - hosts文件 - 路由器缓存 - 递归搜索根域名服务器）
         * （2）建立TCP连接（三次握手）;
         * （3）浏览器发送HTTP请求;
         * （4）该HTTP请求，经过路由器的转发，通过服务器防火墙，到达服务器;
         * （5）服务器处理该HTTP请求，并响应返回一个HTML文件;
         * （6）浏览器解析该HTML文件，同时在浏览器端进行显示;
         *
         */
    }
}
